from langchain.prompts import (
    SystemMessagePromptTemplate,
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
)

from utils.utils import vue_output_parser
from llm.llm import llm


def build_vue_page(summary, filename=""):
    sys_tmpl = """
    请将以下Vue3模块组件整合到一个统一的父组件中展示

    保持统一的UI风格和设计语言
    确保组件间逻辑隔离但外观协调
    优化布局结构，使其具有响应式设计
    统一颜色方案、间距和字体样式
    添加必要的过渡动画效果
    确保代码结构清晰，便于维护
    遵循Vue3最佳实践
    """

    human_tmpl = "组件：\n{summary}"

    system_prompt = SystemMessagePromptTemplate.from_template(sys_tmpl)
    human_prompt = HumanMessagePromptTemplate.from_template(human_tmpl)
    chat_prompt = ChatPromptTemplate.from_messages([system_prompt, human_prompt])

    chain = chat_prompt | llm | vue_output_parser()

    res = chain.invoke(
        {
            "summary": summary,
        }
    )

    print("res")

    return res
